The transmission speed in wide-, metropolitan-, and local-area networking has increased over the past decade six orders of magnitude, from Kbps to Gbps. During the same time period, however, the speed of commercial processing units that can be employed as communications processors has increased only two to three orders of magnitude. Additionally, data communications architectures have structured their services and protocols into a hierarchy of vertical layers. Typically, the services and protocols of an architecture are divided into low-level, i.e., low-layer, services and protocols, and high-level, i.e., high-layer, services and protocols. This layering requires additional software processing to handle functional replication and the overhead inherent in the resulting interlayer interfaces. The discrepancy between transmission speed and processing speed, coupled with the extra processing requirements of the data communications architecture, creates a so called "bottleneck" in the data communications process. This bottleneck exists because, for any communication, the time required by the software to process high-level protocols is greater than the corresponding time required by the transmission facility. Today, the mismatch between a network's transmission speed and its high-level processing ability is so great that the advantages of having high-speed transmission facilities present in a network are subsumed in the delays caused by the large processing requirements of the high-level functionality.
Prior high level data communications protocols have been inflexible because they were optimized for use on a particular type of network which expected to transmit specific types of communications. These prior protocols had fixed characteristics and were unable to adapt to changing user requirements and varying network parameters.